//
// Created by 罗俊华 on 2022/1/21.
//
#include "my_node.h"
#include <iostream>

using std::cout;
using std::endl;

Node::Node(const Item &new_item) {
    item = new Item(new_item);
    next = nullptr;
}

Node::~Node() {
    cout << "node：" << *item << "的析构函数执行" << endl;
    delete item;
};

Node *Node::append(const Item &next_item) {
    /**
     * 使用 new 来创建一份  next_item 的拷贝
     * */
    Item *newItem = new Item(next_item);
    /**
     * 为拷贝出来的 newItem 创建一个Node，将其包裹
     * 将本节点（Node）的下一个指针（next）指向新创建的节点（Node）
     * 同时返回新创建节点（Node）的指针
     * */
    return next = new Node(*newItem);

}

Node *Node::getNextNode() {
    return next;
}

Item Node::getCurrentItem() {
    return *item;
}

